﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Com.queryzer2.Domain.Entities
{
    public class GEP_FASE
    {
        public class GEP_BLOB
        {
            public GEP_BLOB() { }
            
            private string  blb_intestazione_doc;//50
            private byte[]  blb_doc;
            private decimal blb_Id;

            public decimal Blb_Id
            {
                get { return blb_Id; }
                set { blb_Id = value; }
            }

            public string Blb_intestazione_doc
            {
                get { return blb_intestazione_doc; }
                set { blb_intestazione_doc = value; }
            }
            public byte[] Blb_doc
            {
                get { return blb_doc; }
                set { blb_doc = value; }
            }
             
        }

     
        
        public GEP_FASE() 
        {
            this.gep_testata = new GEP_TESTATA();
            this.gep_ana_fase = new GEP_ANA_FASE();
            this.gep_ana_motstafase = new GEP_ANA_MOTSTAFASE();
            this.gep_ana_statof = new GEP_ANA_STATOF();
            this.Documento = new GEP_BLOB();
        }

        public GEP_FASE(decimal id_fas, decimal fas_cod_pratica, string fas_cod_servizio, decimal fas_nro_fase)
        {
            this.id_fas = id_fas;
            this.gep_testata = new GEP_TESTATA(fas_cod_pratica);
            this.gep_ana_fase = new GEP_ANA_FASE(fas_cod_servizio, fas_nro_fase);
            this.gep_ana_motstafase = new GEP_ANA_MOTSTAFASE();
            this.gep_ana_motstafase_chiusura = new GEP_ANA_MOTSTAFASE();
            this.gep_ana_statof = new GEP_ANA_STATOF();
            this.Documento = new GEP_BLOB();
        }

       

        public GEP_FASE(decimal id_fas)
        {
            this.id_fas = id_fas;
        }

        private decimal id_fas;   //todo:aggiungere colonna pk ,inserire unique index su cod_pratica,cod_servizio,cod_fase,progr_fase
        private decimal fas_progr_fase;   //2
        private string fas_unit_oper;  //20

        //private string fas_stato;
        //private string fas_motivaz_fase;


        private System.DateTime? fas_dt_arrivo;
        private System.DateTime? fas_dt_inilav;
        private System.DateTime? fas_dtora_app_proasm;
        private System.DateTime? fas_dtora_app_procli;
        private System.DateTime? fas_dtora_app;
        private System.DateTime? fas_dt_atto_rich;
        private System.DateTime? fas_dt_atto_ott;
        private System.DateTime? fas_dt_inisosp;
        private System.DateTime? fas_dt_finesosp;
        private System.DateTime? fas_dt_finelav;
        private decimal fas_imp_addeb;
        private string fas_note;//255
        private GEP_BLOB documento;

        public decimal Fas_Id
        {
            get { return id_fas; }
            set { id_fas = value; }
        }
        public decimal Fas_Progr_Fase
        {
            get { return fas_progr_fase; }
            set { fas_progr_fase = value; }
        }
        public string Fas_Unit_Oper
        {
            get { return fas_unit_oper; }
            set { fas_unit_oper = value; }
        }
        public System.DateTime? Fas_Dt_Arrivo
        {
            get { return fas_dt_arrivo; }
            set { fas_dt_arrivo = value; }
        }
        public System.DateTime? Fas_Dt_Inilav
        {
            get { return fas_dt_inilav; }
            set { fas_dt_inilav = value; }
        }
        public System.DateTime? Fas_Dtora_App_Proasm
        {
            get { return fas_dtora_app_proasm; }
            set { fas_dtora_app_proasm = value; }
        }
        public System.DateTime? Fas_Dtora_App_Procli
        {
            get { return fas_dtora_app_procli; }
            set { fas_dtora_app_procli = value; }
        }
        public System.DateTime? Fas_Dtora_App
        {
            get { return fas_dtora_app; }
            set { fas_dtora_app = value; }
        }
        public System.DateTime? Fas_Dt_Atto_Rich
        {
            get { return fas_dt_atto_rich; }
            set { fas_dt_atto_rich = value; }
        }
        public System.DateTime? Fas_Dt_Atto_Ott
        {
            get { return fas_dt_atto_ott; }
            set { fas_dt_atto_ott = value; }
        }
        public System.DateTime? Fas_Dt_Inisosp
        {
            get { return fas_dt_inisosp; }
            set { fas_dt_inisosp = value; }
        }
        public System.DateTime? Fas_Dt_Finesosp
        {
            get { return fas_dt_finesosp; }
            set { fas_dt_finesosp = value; }
        }
        public System.DateTime? Fas_Dt_Finelav
        {
            get { return fas_dt_finelav; }
            set { fas_dt_finelav = value; }
        }
        public decimal Fas_Imp_Addeb
        {
            get { return fas_imp_addeb; }
            set { fas_imp_addeb = value; }
        }
        public string Fas_Note
        {
            get { return fas_note; }
            set { fas_note = value; }
        }
        public GEP_BLOB Documento
        {
            get { return documento; }
            set { documento = value; }
        }

        private GEP_ANA_STATOF gep_ana_statof;
        private GEP_ANA_FASE gep_ana_fase;
        private GEP_ANA_MOTSTAFASE gep_ana_motstafase;
        private GEP_ANA_MOTSTAFASE gep_ana_motstafase_chiusura;
        private GEP_TESTATA gep_testata;
        public GEP_ANA_STATOF Gep_ana_statof
        {
            get { return gep_ana_statof; }
            set { gep_ana_statof = value; }
        }
        public GEP_ANA_FASE Gep_ana_fase
        {
            get { return gep_ana_fase; }
            set { gep_ana_fase = value; }
        }
        
        public GEP_ANA_MOTSTAFASE Gep_ana_motstafase
        {
            get { return gep_ana_motstafase; }
            set { gep_ana_motstafase = value; }
        }
        
        public GEP_ANA_MOTSTAFASE Gep_ana_motstafase_chiusura
        {
            get { return gep_ana_motstafase_chiusura; }
            set { gep_ana_motstafase_chiusura = value; }
        }

        public GEP_TESTATA Gep_testata
        {
            get
            {
                return this.gep_testata;
            }
            set
            {
                this.gep_testata = value;
            }
        }
        public decimal Fas_cod_pratica
        {
            get { return Gep_testata.Id_tes_cod_pratica; }
        }
        public string Fas_cod_servizio
        {
            get { return Gep_ana_fase.Id_afa_cod_servizio; }
        }
        public decimal Fas_nro_fase
        {
            get { return Gep_ana_fase.Id_afa_nro_fase; }
        }
        public string Fas_des_fase
        {
            get { return Gep_ana_fase.Afa_des_fase; }
        }

        public string Fas_Stato
        {
            get { return gep_ana_statof.Id_stf_cod_stato; }
        }
        public string Fas_Motivaz_Sosp
        {
            get { return gep_ana_motstafase.Id_mfa_cod_motiv; }
        }

        public string Fas_Motivaz_Chiusura
        {
            get { return gep_ana_motstafase_chiusura.Id_mfa_cod_motiv; }
        }
        
    }
}
